home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d21 / ralloc.pat < prev    next >
Text File  |  1991-02-07  |  14KB  |  362 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.               Quarterdeck Technical Note
  11.  
  12.               Subject:  Patching QEMM-386 5.00, 5.10, 5.11, and 
  13.               5.12 to resolve problems with programs that resize 
  14.               EMS or XMS handles 
  15.  
  16.                 Background: Starting with QEMM-386 5.00, QEMM-386 
  17.               supports both the EMS (Expanded Memory 
  18.               Specification), which governs access to expanded 
  19.               memory, and the more recent XMS (Extended Memory 
  20.               Specification), which governs access to extended 
  21.               memory.  Requests for EMS and for XMS memory are 
  22.               both filled from the same pool of QEMM-managed 
  23.               memory, and EMS and XMS handles (numbers that the 
  24.               memory manager returns to a program when the 
  25.               program takes a chunk of memory, so that the 
  26.               program can quickly identify the chunk when it next 
  27.               communicates with the memory manager) are managed 
  28.               together by QEMM-386.
  29.  
  30.                 Both EMS and XMS contain a call that programs can 
  31.               make to reallocate blocks of memory; that is, to 
  32.               take a handle that the program has already received 
  33.               and increase or decrease the chunk of memory to 
  34.               which the handle refers.  Users of QEMM-386 
  35.               versions 5.00 through 5.12 may experience system 
  36.               instability under certain circumstances when a 
  37.               program makes an EMS or XMS call to increase the 
  38.               size of a handle.  The symptom is likely to be a 
  39.               system crash or a reboot.  
  40.  
  41.                 Users of versions of QEMM-386 after version 5.12 
  42.               should not experience this problem.  In the 
  43.               meantime, QEMM-386 can be patched to eliminate the 
  44.               problem.  
  45.  
  46.  
  47.                 The following procedure is intended to prevent 
  48.               system crashes and reboots when Reallocate Memory 
  49.               EMS and XMS functions are used to increase the size 
  50.               of EMS and XMS handles.  This procedure is for use 
  51.               with QEMM-386 versions:
  52.  
  53.                       5.10 
  54.                       5.11 
  55.                       5.12
  56.  
  57.               ***************************************************
  58.               
  59.                 Do NOT use this patch for QEMM-386 5.0; a 
  60.               separate procedure for QEMM-386 5.0 is later in 
  61.               this technote.  If you are in doubt, go to the 
  62.               directory where the QEMM-386 files are located and 
  63.               check the date on the QEMM386.SYS file by issuing 
  64.               the DOS command:
  65.  
  66.                         DIR QEMM386.SYS
  67.  
  68.               If the date on the file is
  69.  
  70.                         5:10 am 
  71.                         5:11 am 
  72.                         5:12 am
  73.  
  74.               then use the patch in this section. If there is no 
  75.               QEMM386.SYS file in this directory, then you 
  76.               probably have an earlier version of QEMM-386; go 
  77.               forward to the section that deals with the patch 
  78.               for QEMM-386 5.0. 
  79.  
  80.               *************************************************** 
  81.  
  82.                 1) Make a copy of the QEMM386.SYS file in your 
  83.               QEMM directory.  We are about to alter your current 
  84.               copy of QEMM386.SYS; the copy you make will serve 
  85.               as a backup in case this operation fails.
  86.  
  87.                     COPY C:\QEMM\QEMM386.SYS C:\QEMM\QEMM386.OLD
  88.  
  89.                 (If your QEMM386.SYS is not located in the QEMM 
  90.               directory of the C: drive, change the path 
  91.               accordingly.)
  92.  
  93.                 2) Go to the DOS directory on the hard disk and 
  94.               type:
  95.  
  96.                   DEBUG C:\QEMM\QEMM386.SYS
  97.  
  98.                 (If your QEMM386.SYS is not located in the QEMM 
  99.               directory of the C: drive, change the path 
  100.               accordingly.)
  101.  
  102.                 Hit the Enter key; you should see the DEBUG 
  103.               prompt, which is a hyphen.
  104.  
  105.                 3) At the DEBUG prompt, type:
  106.  
  107.                   S 100 L F000 75 6 1 0E
  108.  
  109.                 Hit the Enter key; DEBUG should return a segment 
  110.               address and an offset:
  111.  
  112.                   xxxx:yyyy
  113.  
  114.                 4) At the DEBUG prompt again, use the segment 
  115.               address and offset that was just returned to give 
  116.               the DEBUG command:
  117.  
  118.                   E xxxx:yyyy EB 
  119.    
  120.                 The address that DEBUG returned in step 3 should 
  121.               be used in place of the address xxxx:yyyy, which we 
  122.               use as an example.  Hit the Enter key; the DEBUG 
  123.               prompt should return in a moment.
  124.  
  125.  
  126.                 5) At the DEBUG prompt, type
  127.  
  128.                   W
  129.  
  130.                 Hit the Enter key; DEBUG will announce that it is 
  131.               writing a certain number of bytes, then it will 
  132.               return the DEBUG prompt.
  133.  
  134.                 6) At the DEBUG prompt, type
  135.  
  136.                   Q
  137.  
  138.                 Hit the Enter key to exit DEBUG and return to 
  139.               DOS.  
  140.  
  141.                 7) To double-check your patch, type the following 
  142.               from the DOS prompt in your DOS directory:
  143.  
  144.                   COMP C:\QEMM\QEMM386.SYS C:\QEMM\QEMM386.OLD
  145.  
  146.                (If your QEMM386.SYS is not located in the QEMM
  147.               directory of the C: drive, change the path
  148.               accordingly.)
  149.  
  150.                 Hit the Enter key.  COMP should return:
  151.  
  152.  
  153.                             C:QEMM386.SYS and C:QEMM386.OLD
  154.  
  155.                             Compare error at OFFSET xxxx
  156.                             File 1 = EB
  157.  
  158.                             File 2 = 75
  159.  
  160.                             Eof mark not found
  161.  
  162.                             Compare more files (Y/N)?
  163.  
  164.                 The value xxxx after OFFSET will vary from 
  165.               version to version of QEMM 5.1, but the rest of the 
  166.               message should be the same: it tells us that 
  167.               there is exactly one byte difference between the 
  168.               files, and the differing byte is EB in QEMM386.SYS
  169.               and 75 in QEMM386.OLD.  If COMP returns the 
  170.               message:
  171.  
  172.                             Files compare ok  
  173.  
  174.               ...then you probably failed to use DEBUG's W 
  175.               command to save your change, or you have compared 
  176.               the wrong files.  If COMP returns more than one 
  177.               compare error, or if the bytes returned by the 
  178.               compare error don't match those in the above 
  179.               example, the procedure has failed.  In this case, 
  180.               use the DOS command:
  181.  
  182.                   COPY C:\QEMM\QEMM386.OLD C:\QEMM\QEMM386.SYS
  183.  
  184.               ... to restore the original file, and try again.
  185.  
  186.               If the patch was successful, you should now reboot 
  187.               the system and test the patched version of QEMM-
  188.               386.  If the patched version of QEMM-386 fails, see 
  189.               the section at the end of the technote on restoring 
  190.               your original copy.  Otherwise, you are finished 
  191.               with the patch.
  192.  
  193.                             
  194.               ---------------------------------------------------
  195.  
  196.  
  197.                 The following procedure is intended to prevent 
  198.               system crashes and reboots when Reallocate Memory 
  199.               EMS and XMS functions are used to increase the size 
  200.               of EMS and XMS handles with QEMM 5.00.  
  201.               
  202.  
  203.               ***********************************************
  204.  
  205.               This patch is for:
  206.  
  207.                        QEMM-386 5.00
  208.  
  209.               A separate procedure for other versions appears 
  210.               earlier in this technote.  If you are in doubt, go 
  211.               to the directory where the QEMM-386 files are 
  212.               located and check the date on the QEMM.SYS file by 
  213.               issuing the DOS command:
  214.  
  215.                           DIR QEMM.SYS
  216.  
  217.               If the date on the file is
  218.  
  219.                            5:00 am
  220.  
  221.               then this patch is the one to use.  If there is no
  222.               QEMM.SYS file in this directory, then you probably 
  223.               have a later version of QEMM-386; go back to the 
  224.               section that deals with the patch for QEMM-386 5.1.
  225.  
  226.               ***************************************************
  227.  
  228.                 1) Make a copy of the QEMM.SYS file in your QEMM 
  229.               directory.  We are about to alter your current copy 
  230.               of QEMM.SYS; the copy you make will serve as a 
  231.               backup in case this operation fails.
  232.  
  233.                     COPY C:\QEMM\QEMM.SYS C:\QEMM\QEMM.OLD
  234.  
  235.                 (If your QEMM.SYS is not located in the QEMM 
  236.               directory of the C: drive, change the path 
  237.               accordingly.)
  238.  
  239.                 2) Go to the DOS directory on the hard disk and 
  240.               type:
  241.  
  242.                   DEBUG C:\QEMM\QEMM.SYS
  243.  
  244.                 (If your QEMM.SYS is not located in the QEMM 
  245.               directory of the C: drive, change the path 
  246.               accordingly.)
  247.  
  248.                 Hit the Enter key; you should see the DEBUG 
  249.               prompt, which is a hyphen.
  250.  
  251.                 3) At the DEBUG prompt, type:
  252.  
  253.                   S 100 L F000 75 7 1 0E
  254.  
  255.                 Hit the Enter key; DEBUG should return a segment 
  256.               address and an offset:
  257.  
  258.                   xxxx:yyyy
  259.  
  260.                 4) At the DEBUG prompt again, use the segment 
  261.               address and the offset that was just returned to 
  262.               give the DEBUG command:
  263.  
  264.                   E xxxx:yyyy EB 
  265.    
  266.                 The address that DEBUG returned in step 3 should 
  267.               be used in place of the address xxxx:yyyy, which we 
  268.               use as an example.  Hit the Enter key; the DEBUG 
  269.               prompt should return in a moment.
  270.  
  271.  
  272.                 5) At the DEBUG prompt, type
  273.  
  274.                   W
  275.  
  276.                 Hit the Enter key; DEBUG will announce that it is 
  277.               writing a certain number of bytes, then it will 
  278.               return the DEBUG prompt.
  279.  
  280.                 6) At the DEBUG prompt, type
  281.  
  282.                   Q
  283.  
  284.                 Hit the Enter key to exit DEBUG and return to 
  285.               DOS.    
  286.  
  287.                 7) To double-check your patch, type the following 
  288.               from the DOS prompt in your DOS directory:
  289.  
  290.                   COMP C:\QEMM\QEMM.SYS C:\QEMM\QEMM.OLD
  291.  
  292.                (If your QEMM.SYS is not located in the QEMM
  293.               directory of the C: drive, change the path
  294.               accordingly.)
  295.  
  296.                 Hit the Enter key.  COMP should return:
  297.  
  298.  
  299.                             C:QEMM.SYS and C:QEMM.OLD
  300.  
  301.                             Compare error at OFFSET xxxx
  302.                             File 1 = EB
  303.  
  304.                             File 2 = 75
  305.  
  306.                             Eof mark not found
  307.  
  308.                             Compare more files (Y/N)?
  309.  
  310.                 The value xxxx after OFFSET may vary, but the 
  311.               rest of the message should be the same: it tells us 
  312.               that there is exactly one byte difference between 
  313.               the files, and the differing byte is EB in 
  314.               QEMM.SYS and 75 in QEMM.OLD.  If COMP returns 
  315.               the message:
  316.  
  317.                             Files compare ok  
  318.  
  319.               ...then you probably failed to use DEBUG's W 
  320.               command to save your change, or you have compared 
  321.               the wrong files.  If COMP returns more than one 
  322.               compare error, or if the bytes returned by the 
  323.               compare error don't match those in the above 
  324.               example, the procedure has failed.  In this case, 
  325.               use the DOS command:
  326.  
  327.                   COPY C:\QEMM\QEMM.OLD C:\QEMM\QEMM.SYS
  328.  
  329.               ... to restore the original file, and try again.
  330.  
  331.               If the patch was successful, you should now reboot 
  332.               the system and test the patched version of QEMM-
  333.               386.  
  334.               
  335.  
  336.               --------------------------------------------------
  337.  
  338.                 If the system fails after you perform this patch, 
  339.               you can follow the instructions in the 
  340.               "Installation" section of your QEMM-386 manual to 
  341.               recover without resorting to a boot floppy.  After 
  342.               your system is booted successfully, copy the backup 
  343.               of QEMM-386 that you made back to its original 
  344.               name.  If you are using QEMM-386 5.00, use the 
  345.               following DOS command:
  346.  
  347.                   COPY C:\QEMM\QEMM.OLD C:\QEMM\QEMM.SYS
  348.  
  349.                 If you have QEMM-386 5.1, use the following DOS 
  350.               command instead:
  351.  
  352.                   COPY C:\QEMM\QEMM386.OLD C:\QEMM\QEMM386.SYS
  353.  
  354.                 (If your QEMM.SYS or QEMM386.SYS is not located 
  355.               in the QEMM directory of the C: drive, change the 
  356.               path accordingly.)
  357.  
  358.                 You may then wish to try the above procedure 
  359.               again, in case a mistake was made.
  360.  
  361.              * * *   E N D   O F   F I L E    * * *
  362.